1. Field of the Invention
The present invention relates to an image processing apparatus for processing an image based on, for example, a user operation.
2. Description of the Related Art
Recently, using image data to correct or adjust captured image data using a photo retouch application for retouching or correcting an image, and then printing the image data or uploading it to the Web for sharing or public consumption has become popular.
The photo retouch application provides basic correction and adjustment functions of, for example, adjusting the angle of view, brightness, and tint of captured image data. There also exist applications that have a function to analyze image data and automatically correct it as well as the above-described functions. Note that correction, adjustment, retouching, and the like of image data will simply be referred to as processes or image processing.
Some photo retouch applications have an undo function of undoing correction that has been done once or a redo function of redoing an operation that has been undone once (for example, Japanese Patent Laid-Open No. 2005-310116). The conventional undo/redo function will be explained with reference to FIGS. 13 and 14.
Referring to FIG. 14, process histories 1401 to 1408 indicate examples of process histories recorded by operating a photo retouch application. A process history includes, for example, the order, contents, and parameters of applied processes. The process 1401 is one process unit of image processing executed by pressing a button U1304 or U1305 or moving a slider U1306 on the example of a UI U1301 shown in FIG. 13. In FIG. 14, when image processing is executed in the order of, for example, automatic photo correction, red-eye correction A, red-eye correction B, flesh color correction, and brightness adjustment, the processes remain as histories like the processes 1401 to 1405.
If the user wants to change the already executed red-eye correction B 1403 in this state, a conventional application causes the user to press, for example, an undo button U1302 displayed on the user interface to cancel the brightness adjustment 1405, flesh color correction 1404, and red-eye correction B 1403. After that, the user redoes red-eye correction by, for example, changing the parameter and then performs flesh color correction and brightness adjustment again. If change of the parameter is not required after all, the user may press the “redo” button U1303 to redo the last undone function. This leaves the process histories of the red-eye correction B′ 1406, flesh color correction 1407, and brightness adjustment 1408. As described above, the undo/redo function is conventionally implemented by retroactively tracing the process histories of a series of operations from the latest operation to the past.
To cancel one process out of many kinds of image processing sequentially applied to an image or redo the process using a changed parameter, it is necessary to use the undo function to go back to the state immediately before the target process is applied to the image. The user needs to redo or cancel the target process in that state and then redo subsequent correction that has already been done.
This requires complex operations of the user. In recent years, the problem is becoming more serious because of the increase in the correction functions of photo retouch applications. This applies not only to a photo retouch application but also to an undo/redo function prepared in an application for processing target data by successively applying many functions such as correction.